package com.guodi.map.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.guodi.map.entity.MapLayer;
import com.guodi.map.entity.MapLayerField;
import net.sf.json.JSONArray;

import java.util.List;
import java.util.Map;

/**
 * @描述：图层字段列表 服务类
 * @作者: 代鹏刚
 * @日期: 2019-12-27
 */
public interface IMapLayerFieldService extends IService<MapLayerField> {


    /**
    * @描述: 根据layerId获取字段信息
    * @入参:
    * @出参:
    * @作者: 代鹏刚
    * @日期: 2019/12/27 14:36
    **/
    List<MapLayerField> listByLayerId(String layerId);

    /**
     * @描述: 根据layerId获取字段信息
     * @入参:
     * @出参:
     * @作者: xukl
     * @日期: 2022年3月18日
     **/
    List<MapLayerField> listByLayerIds(List<String> layerIds);

    /**
    * @描述: 保存
    * @入参:
    * @出参:
    * @作者: 代鹏刚
    * @日期: 2019/12/27 17:07
    **/
    void saveMapLayerField(List<MapLayerField> mapLayerFields);

    /**
    * @描述: 根据图层id删除
    * @入参:
    * @出参:
    * @作者: 代鹏刚
    * @日期: 2019/12/27 17:10
    **/
    void deleteByLayerId(String layerId);

    /**
    * @描述: 根据专题目录ID获取图层字段信息
    * @入参:
    * @出参:
    * @作者: 代鹏刚
    * @日期: 2020/4/17 15:24
    **/
    List<MapLayerField> listByProjectId(String projectId);

    /**
    * @描述: 解析返回的字段结果，仅仅是解析
    * @入参:
    * @出参:
    * @作者: 代鹏刚
    * @日期: 2022/4/28 17:50
    **/
    List<MapLayerField> getLayerFieldByParseResult(String parseResult, String layerId, String geometryType);

    /**
     * 解析返回的字段结果，仅仅是解析
     * @param parseResult
     * @param layerId
     * @param geometryType
     * @return
     */
    List<MapLayerField> getLayerFieldByParseResult(JSONArray parseResult, String layerId, String geometryType);

    Map<String,List<MapLayerField>> parseLayerFieldByParseResult(String  layerUrl,MapLayer mapLayer);

}
